#ifndef PROYECTO_H
#define PROYECTO_H

#include <QDomElement>
#include <QList>
#include <QString>
#include "compas.h"
#include "patron.h"

class Proyecto
{
public:
    Proyecto();
    ~Proyecto();

    void serializar(const QString& nombreArchivo);
    void deserializar(const QString& nombreArchivo);

    void setListaCompases(QList<Compas> listaCompases) { this->listaCompases = listaCompases; }
	QList<Compas> getListaCompases() { return listaCompases; }

    void setListaPatrones(QList<Patron> listaPatrones) { this->listaPatrones = listaPatrones; }
    QList<Patron> getListaPatrones() { return listaPatrones; }

    Compas getCompas(int indice);
    Compas getCompas(const QString& nombreCompas);

    Patron getPatron(int indice);
    Patron getPatron(const QString& nombrePatron);

	QString getNombre() const { return nombre; }
	QString getNombreArchivo() const { return nombreArchivo; }

    void agregarPatron(const Patron& patron);

private:
    QString nombre;
    QList<Compas> listaCompases;
    QList<Patron> listaPatrones;

	QString nombreArchivo;
};

#endif // PROYECTO_H
